package com.fulu.designmode.structural.proxy_pattern;

/**
 * 步骤3： 创建代理类，包含被代理对象属性，编写代理逻辑
 */
public class ProxyImage implements Image {

    private String filePath;
    private RealImage realImage;

    public ProxyImage(String filePath){
        this.filePath = filePath;
    }

    @Override
    public void display() {
        System.out.println("before display"); // 加一些日志
        if(this.realImage == null){ // 此步骤对代理对象进行控制，如果存在则不需要从磁盘读取。
            this.realImage = new RealImage(filePath);
        }
        this.realImage.display();
        System.out.println("after display"); // 加一些日志
    }
}
